package com.yunyao.framework.service;

import com.yunyao.common.dto.supplier.ContractDto;
import com.yunyao.common.web.util.PageResult;
import com.yunyao.common.web.util.YResult;
import com.yunyao.framework.dto.contract.ContractWirePaySaveDto;
import com.yunyao.framework.dto.posyupply.PoSyupplyMaterialDeletedDto;
import com.yunyao.framework.dto.posyupply.PoSyupplyMaterialDto;
import com.yunyao.framework.dto.posyupply.PoSyupplyMaterialSaveDto;
import com.yunyao.framework.vo.contract.ContractNodePayVO;
import com.yunyao.framework.vo.contract.ContractWirePayVO;
import com.yunyao.framework.vo.posupply.PoSyupplyMaterialVO;

/**
 * 供货清单材料，付款节点
 * */
public interface PoSyupplyOrderService {
    /**
     * 获取供货清单材料列表
     * @param poSyupplyMaterialDto
     * @return
     */
    YResult<PageResult<PoSyupplyMaterialVO>> getSoSupplyMaterialList(PoSyupplyMaterialDto poSyupplyMaterialDto);

    YResult<PageResult<PoSyupplyMaterialVO>> getPoSupplyMaterialListbySupplyId(PoSyupplyMaterialDto poSyupplyMaterialDto);

    /**
     * 获取合同付款方式信息
     * @param contractDto
     * @return
     */
    YResult<ContractWirePayVO> getWirePayInfo(ContractDto contractDto);

    /**
     * 获取合同付款方式节点信息列表
     * @param contractDto
     * @return
     */
    YResult<PageResult<ContractNodePayVO>> getContractNodePayList(ContractDto contractDto);

    /**
     * 保存供货清单材料信息
     *
     * @param saveDto
     * @return
     */
    YResult<String> saveMaterialInfo(PoSyupplyMaterialSaveDto saveDto);

    /**
     * 保存合同付款方式信息
     *
     * @param saveDto
     * @return
     */
    YResult<String> savePayInfo(ContractWirePaySaveDto saveDto);

    /**
     * 删除合同材料信息
     * @param deletedDto
     * @return
     */
    YResult<String> deletedMaterialInfo(PoSyupplyMaterialDeletedDto deletedDto);
}
